/*
 * @lc app=leetcode.cn id=100 lang=javascript
 *
 * [100] 相同的树
 */

// @lc code=start
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} p
 * @param {TreeNode} q
 * @return {boolean}
 */

 
/*  解题思路
 采用递归解决问题
 递归出口： 两个树当前根节点都为空， 返回true
 两个树有一个为空， 另一个不为空， 返回false
 若两树当前根节点都不为空， 但当前根节点值不相等， 返回false
 如果在以上递归出口都没出去， 就递归的去判断两个树的当前节点的左子树和右子树的值是否都相等。
  */
var isSameTree = function(p, q) {
  if (p === null && q === null) return true
  if (p === null || q === null) return false
  if (p.val !== q.val) return false
  return isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
};
// @lc code=end

